package tum0r.data.algorithm;

import tum0r.misc.ArrayUtils;

/**
 * 工程: JavaTools<br>
 * 包: tum0r.data.algorithm<br>
 * 创建者: tum0r<br>
 * 创建时间: 2020/8/22 20:20<br>
 * <br>
 */
public class HeapSort<T extends Comparable<T>> {
    public void sort(T[] array, int n) {
        if (!ArrayUtils.isNullOrEmpty(array) && n > 0) {
            T temp;
            for (int i = n - 1, j = (i - 1) / 2; j >= 0; i--, j = (i - 1) / 2) {
                if (array[i].compareTo(array[j]) > 0) {
                    temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
            n -= 1;
            temp = array[0];
            array[0] = array[n];
            array[n] = temp;
            sort(array, n);
        }
    }
}
